RMAN备份恢复之控制文件的恢复(二) 您所在的位置:网站首页 rman-06172 恢复控制文件 RMAN备份恢复之控制文件的恢复(二)

RMAN备份恢复之控制文件的恢复(二)

2023-07-29 16:41| 来源: 网络整理| 查看: 265

控制文件对于数据库来说至关重要,在数据库的恢复过程中,首先需要恢复初始化参数文件,然后就是控制文件的恢复。

RMAN采用CATALOG方式还是NOCATALOG方式,以及是否启用了AUTOBACKUP,决定了控制文件的恢复方法。

RMAN备份恢复之控制文件的恢复(一):http://yangtingkun.itpub.net/post/468/305766

这篇文章介绍NOCATALOG方式下通过CONTROLFILE AUTOBACKUP来恢复控制文件。

在NOCATALOG方式下,如果控制文件的自动备份是打开的,那么控制文件丢失后,也可以方便的利用控制文件的自动备份进行恢复。

F:>sqlplus "/@test1 as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on 星期一 7月 23 21:37:28 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

连接到:Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.4.0 - Production

SQL> shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> host move F:oracleoradata est1control01.ctl F:oracleoradata est1control01.bak

SQL> host move F:oracleoradata est1control02.ctl F:oracleoradata est1control02.bak

SQL> host move F:oracleoradata est1control03.ctl F:oracleoradata est1control03.bak

SQL> exit从Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.4.0 - Production中断开

F:>

上面删除了控制文件,这个时候数据库已经无法打开了:

F:>sqlplus "/@test1 as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on 星期一 7月 23 21:44:02 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

已连接到空闲例程。

SQL> startupORACLE 例程已经启动。

Total System Global Area 110173900 bytesFixed Size 454348 bytesVariable Size 83886080 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytesORA-00205: ?????????????????????

SQL> shutdownORA-01507: ??????

ORACLE 例程已经关闭。SQL>SQL> exit从Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.4.0 - Production中断开

下面尝试使用RMAN恢复控制文件:

F:>rman target /@test1

恢复管理器: 版本9.2.0.4.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup nomount

Oracle 例程已启动

系统全局区域总计 110173900 字节

Fixed Size 454348 字节Variable Size 83886080 字节Database Buffers 25165824 字节Redo Buffers 667648 字节

RMAN> restore controlfile from autobackup;

启动 restore 于 23-7月 -07

正在使用目标数据库控制文件替代恢复目录分配的通道: ORA_DISK_1通道 ORA_DISK_1: sid=11 devtype=DISKRMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of restore command at 07/23/2007 22:04:17RMAN-06495: must explicitly specify DBID with SET DBID command

RMAN> set dbid 974710760

正在执行命令: SET DBID

RMAN> show controlfile autobackup format;

RMAN 配置参数为:CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default

RMAN> set controlfile autobackup format for device type disk to 'f:oracleackup\%F';

正在执行命令: SET CONTROLFILE AUTOBACKUP FORMAT

RMAN> restore controlfile from autobackup;

启动 restore 于 23-7月 -07

使用通道 ORA_DISK_1通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070723通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070722通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070721通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070720通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070719通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070718通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070717通道 ORA_DISK_1: 没有找到 7 天之内的自动备份RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of restore command at 07/23/2007 22:07:28RMAN-06172: no autobackup found or specified handle is not a valid copy or piece

RMAN> restore controlfile from autobackup maxdays 20;

启动 restore 于 23-7月 -07

使用通道 ORA_DISK_1通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070723通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070722通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070721通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070720通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070719通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070718通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070717通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070716通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070715通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070714通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070713通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070712通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070711通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070710通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070709通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070708通道 ORA_DISK_1: 已找到的自动备份: f:oracleackupc-974710760-20070708-00通道 ORA_DISK_1: 从自动备份复原控制文件已完成正在复制控制文件输出文件名=F:ORACLEORADATATEST1CONTROL01.CTL输出文件名=F:ORACLEORADATATEST1CONTROL02.CTL输出文件名=F:ORACLEORADATATEST1CONTROL03.CTL完成 restore 于 23-7月 -07

RMAN> alter database mount;

数据库已加载

RMAN> alter database open;

RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of alter db command at 07/23/2007 22:08:44ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

RMAN> alter database open resetlogs;

RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of alter db command at 07/23/2007 22:08:53ORA-01152: 文件 1 没有从完备的旧备份中恢复ORA-01110: 数据文件 1: 'F:ORACLEORADATATEST1SYSTEM01.DBF'

RMAN> recover database;

启动 recover 于 23-7月 -07使用通道 ORA_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 2 已作为文件 F:ORACLEORADATATEST1REDO01.LOG 存在于磁盘上

存档日志线程 1 序列 3 已作为文件 F:ORACLEORADATATEST1REDO02.LOG 存在于磁盘上

存档日志线程 1 序列 4 已作为文件 F:ORACLEORADATATEST1REDO03.LOG 存在于磁盘上

无法找到存档日志存档日志线程 =1 序列=0Oracle 错误:ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误ORA-01152: 文件 1 没有从完备的旧备份中恢复ORA-01110: 数据文件 1: 'F:ORACLEORADATATEST1SYSTEM01.DBF'

RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of recover command at 07/23/2007 22:09:17RMAN-06054: media recovery requesting unknown log: thread 1 scn 58880369

RMAN> catalog archivelog 'F:oracleoradata est1ARCHIVELOGARC00001.001';

已编目的存档日志存档日志文件名 =F:ORACLEORADATATEST1ARCHIVELOGARC00001.001 记录 ID=35 时间戳 =628726349

RMAN> recover database;

启动 recover 于 23-7月 -07使用通道 ORA_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 1 已作为文件 F:ORACLEORADATATEST1ARCHIVELOGARC00001.001 存在于磁盘上存档日志线程 1 序列 2 已作为文件 F:ORACLEORADATATEST1REDO01.LOG 存在于磁盘上

存档日志线程 1 序列 3 已作为文件 F:ORACLEORADATATEST1REDO02.LOG 存在于磁盘上

存档日志线程 1 序列 4 已作为文件 F:ORACLEORADATATEST1REDO03.LOG 存在于磁盘上

存档日志文件名 =F:ORACLEORADATATEST1ARCHIVELOGARC00001.001 线程 =1 序列 =0存档日志文件名 =F:ORACLEORADATATEST1REDO01.LOG 线程 =1 序列 =2存档日志文件名 =F:ORACLEORADATATEST1REDO02.LOG 线程 =1 序列 =3存档日志文件名 =F:ORACLEORADATATEST1REDO03.LOG 线程 =1 序列 =4完成介质的恢复完成 recover 于 23-7月 -07

RMAN> alter database open resetlogs;

数据库已打开

RMAN>

上面碰到的第一个错误:RMAN-06495是由于没有设置DBID造成的,通过控制文件名称中包含的DBID信息设置DBID,并且根据控制文件的位置设置控制文件自动备份的目录和格式。

第二个错误:RMAN-06172是由于控制文件的生成日期早于恢复默认查询日期(7天),通过设置MAXDAYS来避免这个错误的产生。

第三个错误说明恢复了控制文件后,数据库必须以RESETLOGS方式打开。

第四个错误表示,由于恢复了以前备份的控制文件,目前数据库数据文件和控制文件不一致,因此必须要进行恢复。

最后一个错误是由于归档日志的产生晚于控制文件,因此控制文件中没有包括归档的信息,于是在恢复的过程中由于没有找到第一个归档信息,而导致恢复无法完成。通过CATALOG命令使得RMAN记录了归档信息后,恢复完成。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有